---------------------------------------------------------------------------------------------------
-- func: togglegm
-- auth: ZeDingo
-- desc: Toggles a GMs nameflags/icon.
---------------------------------------------------------------------------------------------------

cmdprops =
{
	permission = 1,
	parameters = ""
};

function onTrigger(player)
	-- GM Flag Definitions
	local FLAG_GM				= 0x04000000;
	local FLAG_GM_SENIOR		= 0x05000000;
	local FLAG_GM_LEAD			= 0x06000000;
	local FLAG_GM_PRODUCER		= 0x07000000;
	local FLAG_SENIOR			= 0x01000000; -- Do NOT set these flags. These are here to
	local FLAG_LEAD				= 0x02000000; -- ensure all GM status is removed.

	-- Configurable Options
	local MINLVL_GM				= 1; -- For "whitelisting" players to have some commands, but not GM tier commands.
	local MINLVL_GM_SENIOR		= 2; -- These are configurable so that commands may be restricted
	local MINLVL_GM_LEAD		= 3; -- between different levels of GM's with the same icon.
	local MINLVL_GM_PRODUCER	= 4;

	if (player:checkNameFlags(FLAG_GM)) then
		if (player:checkNameFlags(FLAG_GM)) then
			player:setFlag(FLAG_GM);
		end
		if (player:checkNameFlags(FLAG_SENIOR)) then
			player:setFlag(FLAG_SENIOR);
		end
		if (player:checkNameFlags(FLAG_LEAD)) then
			player:setFlag(FLAG_LEAD);
		end
	else
		local gmlvl = player:getGMLevel();
		if (gmlvl >= MINLVL_GM_PRODUCER) then
			player:setFlag(FLAG_GM_PRODUCER);
		elseif (gmlvl >= MINLVL_GM_LEAD) then
			player:setFlag(FLAG_GM_LEAD);
		elseif (gmlvl >= MINLVL_GM_SENIOR) then
			player:setFlag(FLAG_GM_SENIOR);
		elseif (gmlvl >= MINLVL_GM) then
			player:setFlag(FLAG_GM);
		end
	end
end